As computer software is becoming more complex, software development is becoming more complicated. Large scale software development effort often requires proper management of and coordination among teams of engineers. Confusion and inefficiency easily arise when the software release process throughout different stages of software development cycle is not carefully executed. Compounding the problem is the fact that each version of a software product must pass through multiple developmental and testing cycles prior to its release, where advancing to the next stage requires the passing of multiple iterations of testing and approval process.
Previously, the process of determining which source modules to collect, collecting the source modules, building a release, testing and finally releasing a fix was tedious and time consuming. Many hours were spent in meetings with software engineers and managers to determine which source modules should be included in which version, and what reported problems were fixed by which source modules, and whether the source modules with new features should be included in a build. In addition to the labor intensive steps involved in source modules management, documents management along the release process is another area that involves a substantial amount of manual process. While it is critical to ensure that documents are properly associated with the correct version and release of software products, the task of preparing, tracking and releasing documents related to a specific version and release of the software product is daunting.
There is a need, therefore, for an improved method or system that automates and streamlines computer software release.